COMO ACELERAR CONSULTAS SQL

Conteúdo

  1. otimizar query

Como melhorar performance do sql?

Como melhorar performance do sql?

Uma dica é fazer os filtros no INNER JOIN e não no WHERE sempre que possível.

Essa dica nunca vi em nenhum fórum ou curso, mas depois de alguns testes vi que usar os filtros no INNER JOIN é mais rápido. Isso se justifica pelo seguinte, na ordem que o SQL lê os elementos para montar a consulta. Ele primeiro olha o FROM para saber a tabela inicial e em seguida o INNER JOIN, primeiro da esquerda para direita ou de cima para baixo, depois os outros JOINS como LEFT e RIGHT, só depois será visto o WHERE. Veja clicando aqui a ordem da consulta no SQL.

Então se colocar os filtros direto no INNER JOIN ele já reduz os itens consultados no começo da query.

Em uma consulta bem comum que liga os itens da nota com o cabeçalho ficaria algo assim, para pegar as notas da loja 2 dos últimos 5 dias ficaria assim:

Com o WHERE:

SELECT numero, codigo_loja, razao_social, ean, valor_unitario, quantidade

FROM venda_cabecalho c

INNER JOIN venda_itens i on (i.numero = c.numero and i.loja = c.loja)

WHERE c.codigo_loja =  2 and c.data > (current_date - 5)

Direto no INNER JOIN:

SELECT numero, codigo_loja, razao_social, ean, valor_unitario, quantidade

FROM venda_cabecalho c

INNER JOIN venda_itens i on (c.codigo_loja =  2 and c.data > (current_date - 5) and i.numero = c.numero and i.loja = c.loja)

 




botão de compartilhamento whatsapp botão de compartilhamento no twiter botão de compartilhamento do site botão de compartilhamento no linkedin botão de compartilhamento whatsapp